package com.yelink.metrics.api.dto.common;

import com.baomidou.mybatisplus.annotation.TableField;
import com.yelink.metrics.core.constant.annotations.MetricsColumn;
import com.yelink.metrics.core.constant.enums.FieldDefine;
import com.yelink.metrics.core.domain.BaseMetricsEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author idea
 */
@Data
@EqualsAndHashCode(callSuper = true)
public abstract class BaseMaterialEntity extends BaseMetricsEntity implements MaterialType {

    @MetricsColumn(comment = "物料名称", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_name")
    private String materialName;

    @MetricsColumn(comment = "物料类型", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_type_name")
    private String materialTypeName;

    @MetricsColumn(comment = "物料分类", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_sort_name")
    private String materialSortName;

    @MetricsColumn(comment = "物料规格", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_standard")
    private String materialStandard;

    @MetricsColumn(comment = "物料图号", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_drawing_number")
    private String materialDrawingNumber;

    @MetricsColumn(comment = "物料材质", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_raw_material")
    private String materialRawMaterial;

    @MetricsColumn(comment = "物料特征参数名称", remark = "多个按','分隔", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_sku_attr_name")
    private String materialSkuAttrName;

    /**
     * 物料扩展字段1
     */
    @MetricsColumn(comment = "物料扩展字段1", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_one")
    private String materialCustomFieldOne;
    /**
     * 物料扩展字段2
     */
    @MetricsColumn(comment = "物料扩展字段2", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_two")
    private String materialCustomFieldTwo;
    /**
     * 物料扩展字段3
     */
    @MetricsColumn(comment = "物料扩展字段3", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_three")
    private String materialCustomFieldThree;
    /**
     * 物料扩展字段4
     */
    @MetricsColumn(comment = "物料扩展字段4", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_four")
    private String materialCustomFieldFour;
    /**
     * 物料扩展字段5
     */
    @MetricsColumn(comment = "物料扩展字段5", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_five")
    private String materialCustomFieldFive;
    /**
     * 物料扩展字段6
     */
    @MetricsColumn(comment = "物料扩展字段6", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_six")
    private String materialCustomFieldSix;
    /**
     * 物料扩展字段7
     */
    @MetricsColumn(comment = "物料扩展字段7", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_seven")
    private String materialCustomFieldSeven;
    /**
     * 物料扩展字段8
     */
    @MetricsColumn(comment = "物料扩展字段8", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_eight")
    private String materialCustomFieldEight;
    /**
     * 物料扩展字段9
     */
    @MetricsColumn(comment = "物料扩展字段9", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_nine")
    private String materialCustomFieldNine;
    /**
     * 物料扩展字段10
     */
    @MetricsColumn(comment = "物料扩展字段10", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_ten")
    private String materialCustomFieldTen;
    /**
     * 物料扩展字段11
     */
    @MetricsColumn(comment = "物料扩展字段11", filedDefine = FieldDefine.ATTACHMENT)
    @TableField(value = "material_custom_field_eleven")
    private String materialCustomFieldEleven;

}
